力扣|Q997找法官FindTheTownJudge
全部标签📷江池俊:个人主页🔥个人专栏:✅数据结构探索✅LeetCode每日一道🌅有航道的人,再渺小也不会迷途。LeetCode206.反转链表思路一:头插初始化两个指针,cur和newhead。cur指向给定的链表头节点,newhead初始为NULL。在cur不为空的情况下,执行循环。首先,记录下cur的下一个节点next。然后,将cur的next指针指向newhead,实现当前节点cur逆序接入新链表。接着,将newhead指向cur,以便下一次循环时,newhead就能指向新链表的下一个节点。最后,将cur移动到下一个节点。当cur为空时,说明已经遍历完整个链表,此时newhead就是反转后的链表
力扣热题:找到所有数组中消失对数字开篇 这两天刚交了蓝桥杯的报名费,刷题的积极性高涨。算上打卡题,今天刷了10道算法题了,题目都比较简单,挑选了一道还不错的题目与大家分享。题目链接:448.找到所有数组中消失对数字题目描述代码思路 把数组先排序,然后利用桶排来统计数组中存在的元素,对于数量为0的元素则存入list集合中,最后返回list集合代码纯享版classSolution{publicListInteger>findDisappearedNumbers(int[]nums){ListInteger>list=newArrayList>();Arrays.sort(nums);int[]
Problem:765.情侣牵手思路模拟一次四对情侣的换位这次换位的位置指向具有首尾相连的特点,也就是说四对情侣(或者说座位)在一个连通分量内,每一次换位都能促成一对情侣成功牵手,因此需要交换3次(3对情侣都找到了配偶那剩下的一定找到了配偶)。要求输出最少交换次数,假设有N对情侣,逻辑上能相连(也就是在一个连通分量里)的情侣为:N1,N2,…,Nn,(n就是换位前的连通分量数)并且N1+N2+…+Nn=N。由上面的例子可以知道,找到正确的配偶后,座位其实就成为了一个独立的连通分量,这种独立的连通分量就是我们所希望得到的。找位置其实就是要将逻辑上连在一起的情侣这种连通分量拆开为一个个独立的目标连
今天我们一起来做一道关于队列的OJ题目,这是力扣题目622题,点击题目链接可以直接跳转,https://leetcode.cn/problems/design-circular-queue/首先,我们看到要求,需要我们实现哪些功能? 我们需要设置队列长度K,队首元素,队尾元素,插入元素,删除元素,判断空,判断满。那这么多接口,我们要从哪里入手呢?我们现在做题无外乎要么用顺序表的方式,要么用链表的方式,使用两者其实都可以,今天我们就用顺序表的方式实现吧。既然使用顺序表也就是数组,那么我们要考虑一点,在什么情况下这个队列为空?要确定这个循环队列为空,那就需要保证,头元素的下标和尾元素的下标相等才
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录解法1解法2解法3给定一个包含[0,n]中n个数的数组nums,找出[0,n]这个范围内没有出现在数组中的那个数。示例1:输入:nums=[3,0,1]输出:2解释:n=3,因为有3个数字,所以所有的数字都在范围[0,3]内。2是丢失的数字,因为它没有出现在nums中。示例2:输入:nums=[0,1]输出:2解释:n=2,因为有2个数字,所以所有的数字都在范围[0,2]内。2是丢失的数字,因为它没有出现在nums中。示例3:输入:nums=[9,6,4,2,3,5,7,0,1]输出:8解释:n=9,因为有9个数字,所以所
文章目录第三大的数解法一(排序加遍历对比)解法二(遍历一遍加迭代)第三大的数题目:给你一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。示例1:输入:[3,2,1]输出:1解释:第三大的数是1。示例2:输入:[1,2]输出:2解释:第三大的数不存在,所以返回最大的数2。示例3:输入:[2,2,3,1]输出:1解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。此例中存在两个值为2的数,它们都排第二。在所有不同数字中排第三大的数为1。解法一(排序加遍历对比)分析:1.因为是要第三大的数,我们可以先判断数组的长度,如果为1则直接放回数组的第一个数,为2就判断哪个
【力扣】从零开始的动态规划文章目录【力扣】从零开始的动态规划开头139.单词拆分解题思路45.跳跃游戏II解题思路5.最长回文子串解题思路1143.最长公共子序列解题思路931.下降路径最小和解题思路开头本力扣题解用5题来引出动态规划的解题步骤,用于本人进阶掌握动态规划,在刷题过程中写下的一些解题步骤与思路,供大家一起学习139.单词拆分139.单词拆分给你一个字符串s和一个字符串列表wordDict作为字典。请你判断是否可以利用字典中出现的单词拼接出s。**注意:**不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。解题思路状态表示:dp[i]表示字符串以0到i-1的字符串,
题目描述:给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例1:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]提示:m==matrix.lengthn==matrix[0].length1-231进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是
题目:给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提示:链表中节点的数目范围是[0,5000]-5000分析:本道题,需要考虑两种情况:**第一种:**链表为空,反转链表依然是一个空链表。**第二种:**链表不为空,需要反转:定义三个指针n1,n2,n3,分别指向NULL,head,head->next通过n2来遍历链表,n3先到结尾,为空时,此时链表还没有遍历结束,还没有实现全部反转实现反转:n2->next=n1
📷江池俊:个人主页🔥个人专栏:✅数据结构探索✅LeetCode每日一道🌅有航道的人,再渺小也不会迷途。LeetCode138.随机链表的复制给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有X和Y两个节点,其中X.random-->Y。那么在复制链表中